package entidades;

import java.util.ArrayList;
import java.util.Collection;

import util.Constantes;

public class DadosFuncionais {

	private String matricula;
	private String cargo;
	private String matriculaSecundaria;
	private int jornada;

	private CargaSemanal cargaSemanal;
	private Funcao funcao;
	private RegimeTrabalho regimeTrabalho;
	private UnidadeLotacao lotacao;
	private Vinculacao vinculacao;
	private OrgaoOrigem orgaoOrigem;
	private CcFg ccFg;
	private Collection<Ocupacao> ocupacoes;

	/**
	 * 
	 */
	public DadosFuncionais() {
		super();
		this.matricula = "";
		this.cargo = "";
		this.matriculaSecundaria = "";
		this.jornada = 0;
		this.cargaSemanal = new CargaSemanal();
		this.funcao = new Funcao();
		this.regimeTrabalho = new RegimeTrabalho();
		this.lotacao = new UnidadeLotacao();
		this.vinculacao = new Vinculacao();
		this.orgaoOrigem = new OrgaoOrigem();
		this.ccFg = new CcFg();
		this.ocupacoes = new ArrayList<Ocupacao>();
	}

	/**
	 * @param matricula
	 * @param cargo
	 * @param matriculaSecundaria
	 * @param jornada
	 */
	public DadosFuncionais(String matricula, String cargo,
			String matriculaSecundaria, int jornada) {
		super();
		this.matricula = matricula;
		this.cargo = cargo;
		this.matriculaSecundaria = matriculaSecundaria;
		this.jornada = jornada;
		this.cargaSemanal = new CargaSemanal();
		this.funcao = new Funcao();
		this.regimeTrabalho = new RegimeTrabalho();
		this.lotacao = new UnidadeLotacao();
		this.vinculacao = new Vinculacao();
		this.orgaoOrigem = new OrgaoOrigem();
		this.ccFg = new CcFg();
		this.ocupacoes = new ArrayList<Ocupacao>();
	}

	/**
	 * @param matricula
	 * @param cargo
	 * @param matriculaSecundaria
	 * @param jornada
	 * @param cargaSemanal
	 * @param funcao
	 * @param regimeTrablho
	 * @param lotacao
	 * @param vinculacao
	 * @param orgaoOrigem
	 * @param ccFg
	 * @param ocupacoes
	 */
	public DadosFuncionais(String matricula, String cargo,
			String matriculaSecundaria, int jornada, CargaSemanal cargaSemanal,
			Funcao funcao, RegimeTrabalho regimeTrablho,
			UnidadeLotacao lotacao, Vinculacao vinculacao,
			OrgaoOrigem orgaoOrigem, CcFg ccFg, Collection<Ocupacao> ocupacoes) {
		super();
		this.matricula = matricula;
		this.cargo = cargo;
		this.matriculaSecundaria = matriculaSecundaria;
		this.jornada = jornada;
		this.cargaSemanal = cargaSemanal;
		this.funcao = funcao;
		this.regimeTrabalho = regimeTrablho;
		this.lotacao = lotacao;
		this.vinculacao = vinculacao;
		this.orgaoOrigem = orgaoOrigem;
		this.ccFg = ccFg;
		this.ocupacoes = ocupacoes;
	}

	/**
	 * @return the matricula
	 */
	public String getMatricula() {
		return matricula;
	}

	/**
	 * @param matricula
	 *            the matricula to set
	 */
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	/**
	 * @return the cargo
	 */
	public String getCargo() {
		return cargo;
	}

	/**
	 * @param cargo
	 *            the cargo to set
	 */
	public void setCargo(String cargo) {
		this.cargo = cargo;
	}

	/**
	 * @return the matriculaSecundaria
	 */
	public String getMatriculaSecundaria() {
		return matriculaSecundaria;
	}

	/**
	 * @param matriculaSecundaria
	 *            the matriculaSecundaria to set
	 */
	public void setMatriculaSecundaria(String matriculaSecundaria) {
		this.matriculaSecundaria = matriculaSecundaria;
	}

	/**
	 * @return the jornada
	 */
	public int getJornada() {
		return jornada;
	}

	/**
	 * @param jornada
	 *            the jornada to set
	 */
	public void setJornada(int jornada) {
		this.jornada = jornada;
	}

	public void setJornada(String jornada) {
		if(jornada.toUpperCase().equals("DIARISTA")){
			this.jornada = Constantes.JORNADA_DIARISTA;
		} else if(jornada.toUpperCase().equals("PLANTONISTA")){
			this.jornada = Constantes.JORNADA_PLANTONISTA;			
		}
		
	}
	
	/**
	 * @return the cargaSemanal
	 */
	public CargaSemanal getCargaSemanal() {
		return cargaSemanal;
	}

	/**
	 * @param cargaSemanal
	 *            the cargaSemanal to set
	 */
	public void setCargaSemanal(CargaSemanal cargaSemanal) {
		this.cargaSemanal = cargaSemanal;
	}

	/**
	 * @return the funcao
	 */
	public Funcao getFuncao() {
		return funcao;
	}

	/**
	 * @param funcao
	 *            the funcao to set
	 */
	public void setFuncao(Funcao funcao) {
		this.funcao = funcao;
	}

	/**
	 * @return the regimeTrablho
	 */
	public RegimeTrabalho getRegimeTrabalho() {
		return regimeTrabalho;
	}

	/**
	 * @param regimeTrablho
	 *            the regimeTrablho to set
	 */
	public void setRegimeTrabalho(RegimeTrabalho regimeTrabalho) {
		this.regimeTrabalho = regimeTrabalho;
	}

	/**
	 * @return the lotacao
	 */
	public UnidadeLotacao getLotacao() {
		return lotacao;
	}

	/**
	 * @param lotacao
	 *            the lotacao to set
	 */
	public void setLotacao(UnidadeLotacao lotacao) {
		this.lotacao = lotacao;
	}

	/**
	 * @return the vinculacao
	 */
	public Vinculacao getVinculacao() {
		return vinculacao;
	}

	/**
	 * @param vinculacao
	 *            the vinculacao to set
	 */
	public void setVinculacao(Vinculacao vinculacao) {
		this.vinculacao = vinculacao;
	}

	/**
	 * @return the orgaoOrigem
	 */
	public OrgaoOrigem getOrgaoOrigem() {
		return orgaoOrigem;
	}

	/**
	 * @param orgaoOrigem
	 *            the orgaoOrigem to set
	 */
	public void setOrgaoOrigem(OrgaoOrigem orgaoOrigem) {
		this.orgaoOrigem = orgaoOrigem;
	}

	/**
	 * @return the ccFg
	 */
	public CcFg getCcFg() {
		return ccFg;
	}

	/**
	 * @param ccFg
	 *            the ccFg to set
	 */
	public void setCcFg(CcFg ccFg) {
		this.ccFg = ccFg;
	}

	/**
	 * @return the ocupacoes
	 */
	public Collection<Ocupacao> getOcupacoes() {
		return ocupacoes;
	}

	/**
	 * @param ocupacoes
	 *            the ocupacoes to set
	 */
	public void setOcupacoes(Collection<Ocupacao> ocupacoes) {
		this.ocupacoes = ocupacoes;
	}

}
